#include "stm32f10x.h"
#include "delay.h"

void MG90S_Init(void){
	GPIO_InitTypeDef GPIO_InitStruct;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	
	GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IPU;
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9;
	GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
	
	GPIO_Init(GPIOB,&GPIO_InitStruct);
	
	GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IPU;
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;
	GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;

	GPIO_Init(GPIOA,&GPIO_InitStruct);
}

void MG90S_turn(int val){
	GPIO_WriteBit(GPIOB,GPIO_Pin_9,(BitAction)0);
	GPIO_WriteBit(GPIOB,GPIO_Pin_9,(BitAction)1);
	delay_us(val);
	GPIO_WriteBit(GPIOB,GPIO_Pin_9,(BitAction)0);
	delay_us(3000-val);
	
	GPIO_WriteBit(GPIOB,GPIO_Pin_9,(BitAction)1);
}
